home *** CD-ROM | disk | FTP | other *** search
/ APDL Eductation Resources / APDL Eductation Resources.iso / programs / games / puzzle / reveal / !Spr-Rev / !RunImage (.txt) < prev    next >
Encoding:
RISC OS BBC BASIC V Source  |  1993-08-22  |  4.7 KB  |  198 lines

  1.  >!RunImage
  2. " at line ";
  3.  quit%=
  4.  "Wimp_CloseDown"
  5.  "OS_Module",7,,spritea%
  6.  "XOS_ChangeDynamicArea",1,-2097152
  7.  block% 1000, ind% 1000, ind2% 1000, menu% 100, name% 11, indi% 255
  8.  bufff% 20, bufff2% 20
  9.  "Wimp_Initialise",200,&4B534154,"!Spr-Rev" 
  10.  ,taskid%
  11.  "OS_Module",6,,,1 
  12.  ,,spritea%
  13. bar_icon
  14. templates
  15. menus
  16. quit%=
  17.  "Wimp_Poll",0,block% 
  18.  res%
  19.  res% 
  20.  1,2 : 
  21.  "Wimp_OpenWindow",,block%
  22.  3 : 
  23.  "Wimp_CloseWindow",,block%
  24.  6 : 
  25. click
  26.  7 : 
  27. startsave
  28.  8 : 
  29.  9 : 
  30.  !block%=1 
  31.  quit%=
  32.  17,18 : 
  33. message
  34.  19 :
  35. bar_icon
  36. !block%=-1:block%!4=0
  37. block%!8=0:block%!12=68
  38. ( block%!16=68:block%!20=&3002
  39. $(block%+24)="!spr-rev"
  40.  "Wimp_CreateIcon",,block% 
  41.  bar%
  42. templates
  43.  "Wimp_OpenTemplate",,"<Spr-Rev$Dir>.Templates"
  44. $name%="ProgInfo"
  45.  "Wimp_LoadTemplate",,block%,ind%,ind%+1000,-1,name%,0
  46.  "Wimp_CreateWindow",,block% 
  47.  infobox%
  48. $name%="xfer_Send"
  49.  "Wimp_LoadTemplate",,block%,ind2%,ind2%+1000,-1,name%,0
  50.  "Wimp_CreateWindow",,block% 
  51.  savebo%
  52.  "Wimp_CloseTemplate"
  53. !block%=savebo%:block%!4=1
  54.  "Wimp_GetIconState",,block%
  55. indi%=block%!28
  56. menus
  57. $menu%="!Spr-Rev"
  58. =/menu%!12=7:menu%?13=2:menu%?14=7:menu%?15=0
  59. >&menu%!16=80:menu%!20=44:menu%!24=0
  60. ?Emenu%!28=0:menu%!32=infobox%:menu%!36=&7000021:$(menu%+40)="Info"
  61. @@menu%!52=&80:menu%!56=0:menu%!60=&7000021:$(menu%+64)="Quit"
  62. str(ptr%)
  63.  str$
  64.  ?ptr%<>0
  65. str$+=
  66. (?ptr%):ptr%+=1
  67. H    =str$
  68. error(err$)
  69. K#!block%=255:$(block%+4)=err$+
  70.  "Wimp_ReportError",block%,1,"!Spr-Rev"
  71.  block%!24=13 
  72.  !block%=savebo% : 
  73. quick
  74.  "Wimp_ProcessKey",block%!24
  75. click
  76.  block%!12 
  77.  -2 : 
  78.  block%!8=2 
  79.  "Wimp_CreateMenu",,menu%,!block%-64,184
  80.  savebo% : 
  81.  block%!16 
  82. Z1                 
  83.  0 : 
  84.  block%!8=64 
  85. dragbox
  86. [.                 
  87.  2 : 
  88.  block%!8=4 
  89. quick
  90.                
  91. message
  92.  block%!16 
  93.  0 : quit%=
  94.  2 : 
  95. data_save
  96.  3 : 
  97. load_file(block%!40,
  98. str(block%+44))
  99. load_file(type%,file$)
  100.  type%<>&FF9 
  101.  type%<>&0F9 
  102. error("!Spr-Rev can only handle Sprites and RevPics."):
  103.  type%=&FF9 
  104.  ntype%=&0F9 
  105.  ntype%=&FF9
  106.  type%=&FF9 
  107.  type$="Sfile_0F9" 
  108.  type$="Sfile_FF9"
  109.  "OS_File",&05,file$ 
  110.  ,,,,len%
  111. !block%=savebo%:block%!4=0
  112.  "Wimp_GetIconState",,block%
  113. ~ntype%="F9" 
  114.  fbox$="Sfile_0f9" 
  115.  fbox$="Sfile_ff9"
  116. $(block%!32)=type$
  117. !block%=savebo%
  118.  "Wimp_GetWindowState",,block%
  119.  "Wimp_OpenWindow",,block%
  120. oldfile$=file$
  121. quick
  122. !block%=savebo%:block%!4=1
  123.  "Wimp_GetIconState",,block%
  124. file$=$indi%
  125. file$,".") 
  126. saveit(file$)
  127. error("To save, drag the icon to a directory viewer"):q%=
  128. close
  129. startsave
  130. !block%=savebo%:block%!4=1
  131.  "Wimp_GetIconState",,block%
  132. file$=$(block%!28)
  133.  "Wimp_GetPointerInfo",,block%
  134. +block%!20=block%!12:block%!24=block%!16
  135. (block%!28=!block%:block%!32=block%!4
  136. block%!36=len%
  137. !block%=64:block%!12=0
  138.  block%!16=1:block%!40=ntype%
  139. !$(block%+44)=
  140. get_leaf(file$)
  141.  "Wimp_SendMessage",18,block%,block%!20,block%!24
  142. get_leaf(f$)
  143. f$,".")
  144. f$,".")+1)
  145. saveit(file$)
  146. load_sprites
  147.  "OS_SpriteOp",&10D,spritea%,bufff%,20,1
  148. spp$=
  149. str(bufff%)
  150. $bufff2%="revsprite"
  151.  "OS_SpriteOp",&11A,spritea%,bufff%,bufff2%
  152.  "OS_SpriteOp",&10C,spritea%,file$
  153.  "OS_File",&12,file$,ntype%
  154.  "OS_Module",7,,spritea%
  155.  "OS_Module",6,,,1 
  156.  ,,spritea%
  157.  "XOS_ChangeDynamicArea",1,-2097152
  158. load_sprites
  159.  file%,size%
  160. file%=
  161.  oldfile$
  162. size%=
  163. #file%+16:
  164. #file%
  165.  "OS_Module",7,,spritea%
  166.  "OS_Module",6,,,size% 
  167.  ,,spritea%
  168. !!spritea%=size%:spritea%!8=16
  169.  "OS_SpriteOp",&109,spritea%
  170.  "OS_SpriteOp",&10A,spritea%,oldfile$
  171. =spritea%
  172. dragbox
  173. !block%=savebo%
  174.  "Wimp_GetWindowState",,block%
  175. ox%=block%!4-block%!20
  176. oy%=block%!16-block%!24
  177. block%!4=0
  178.  "Wimp_GetIconState",,block%
  179. $block%!4=5:block%!8=ox%+block%!8
  180. block%!12=oy%+block%!12
  181. block%!16=ox%+block%!16
  182. block%!20=oy%+block%!20
  183. block%!24=0:block%!28=0
  184. block%!32=&7FFFFFFF
  185. block%!36=&7FFFFFFF
  186.  "Wimp_DragBox",,block%
  187. data_save
  188. $indi%=
  189. str(block%+44)
  190. saveit($indi%)
  191. block%!12=block%!8
  192. block%!16=3:!block%=256
  193.  "Wimp_SendMessage",18,block%,block%!20,block%!24
  194. close
  195. close
  196. !block%=savebo%
  197.  "Wimp_CloseWindow",,block%
  198.